Object name/it

Introduzione

Tutti gli oggetti nel programma hanno un nome che li identifica in modo univoco in un dato documento.

Queste informazioni si applicano a tutti gli oggetti derivati da un oggetto App DocumentObject (classe App::DocumentObject), che essenzialmente comprende tutti gli oggetti che è possibile creare in un documento.

Nomi

Esistono varie proprietà per i nomi:

In sintesi, Name agisce essenzialmente come un identificatore univoco (UID) per un oggetto. Poiché un Name univoco è molto restrittivo, tutti gli oggetti hanno anche una proprietà Label che consente di "rinominare" l'oggetto in qualcosa di più descrittivo. L'Name interno in realtà rimane fisso, ma l'Label modificabile dall'utente può essere utilizzato nella maggior parte delle situazioni in cui verrebbe utilizzato l'Name. Nell'uso comune nel programma e nella documentazione, "rinominare" significa cambiare l'Label e non l'effettivo Name dell'oggetto.

Etichette

Esistono varie proprietà per le etichette:

<<Custom Label With Spaces>>.Height
<<Label may use UTF8 characters>>.Width

Label2

È una stringa semplice che può contenere testo arbitrario e quindi può essere utilizzata per documentare (descrivere con maggiore dettaglio) l'oggetto creato.

Script

Vedere anche: Script di base per FreeCAD, e script di oggetti.

Qualsiasi oggetto nel software viene creato internamente con il metodo addObject() del documento. La maggior parte degli oggetti 2D e 3D che l'utente vedrà nella Vista 3D derivano da una Part Feature. Nell'esempio seguente, l'oggetto creato è un Part Cubo.

import FreeCAD as App

doc = App.newDocument()
obj = doc.addObject("Part::Box", "Name")
obj.Label = "Custom label"

Nome

La funzione addObject ha di base due argomenti stringa.

Etichetta

L'Label è una proprietà dell'oggetto creato e può essere modificata in un testo più significativo.

Ottenere un oggetto per Name o Label

Tutti gli oggetti in un documento sono attributi di dati dell'oggetto Document corrispondente. Il nome dell'attributo corrisponde al Name interno dell'oggetto.

import FreeCAD as App

obj1 = App.ActiveDocument.Box
obj2 = App.ActiveDocument.Box001
obj3 = App.ActiveDocument.Box002

Ciò equivale a utilizzare il metodo getObject del Document.

import FreeCAD as App

obj1 = App.ActiveDocument.getObject('Box')
obj2 = App.ActiveDocument.getObject('Box001')
obj3 = App.ActiveDocument.getObject('Box002')

Tuttavia, è anche possibile ottenere l'oggetto tramite il più descrittivo Label.

import FreeCAD as App

obj1 = App.ActiveDocument.getObjectsByLabel("Concrete wall")[0]
obj2 = App.ActiveDocument.getObjectsByLabel("Custom parallelepiped")[0]
obj3 = App.ActiveDocument.getObjectsByLabel("Some special name for this cube__002")[0]

Dato che Label in generale non è univoco, il metodo getObjectsByLabel restituisce un elenco con tutti gli oggetti trovati con quella Label. Tuttavia, se l'Label è univoco nel documento, allora il primo elemento dell'elenco dovrebbe essere l'oggetto desiderato.